package com.lane.animals;

public class Dog extends Animals {
	public int age = 20;

	public Dog() {
		super();//这里加与不加系统都会默认去调用父类的构造方法
		System.out.println("Dog类执行了");
	}

	public void eat() {
		System.out.println("Dog具有吃东西的能力");
	}

//	@Override
//	public String toString() {
//		return "Dog [age=" + age + "]";
//	}
	
	

	public void method() {
		// 调用子类中的属性直接写就哦了,Java中是两个属性
		// 调用父类中的属性
		System.out.println(super.age);
		
		// 调用父类中的方法
		super.eat();
	}

	/* （非 Javadoc）
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		//如果两个引用的地址相同
		if (this == obj) {
			return true;
		}
		
		//如果另外一个对象是空值
		if (!super.equals(obj)) {
			return false;
		}
		
		//getClass是可以得到类对象，类对象是类的描述信息
	    //类的对象关注的是里边的值
		if (getClass() != obj.getClass()) {
			return false;
		}
		
		Dog other = (Dog) obj;
		if (age != other.age) {
			return false;
		}
		return true;
	}
}